10. Se dau fisierele de gradatie de merit Excel cu ~70 de sheet-uri reprezentand tipuri de rezultate din invatamant, cercetare si administrativ. Fiecare sheet are un numar de coloane reprezentand campurile unor inregistrari, iar liniile contin valorile. De exemplu in sheet-ul I.2.1a sunt prezente cartile publicate si gasim coloanele urmatoare: Autori Titlul cartii Editura ISBN Anul Nr. total de pagini Nr. de pagini contributie proprie Aceste coloane se vor modela pentru a reprezenta acest tip de publicatii. Se vor modela primele 5 sheet-uri de la fiecare sectine I, II si III, in total 15 liste. Se cere sa se scrie o aplicatie cu urmatoarele functionalitati: - aplicatia va citi un astfel de fisier de intrare si va incarca inregistrarile in cele 15 liste existente - aplicatia va putea citi multiple fisiere de intrare si va incarca inregistrarile in continuare in cele 15 liste existente - aplicatia va genera un fisier Excel cu cele 15 liste in 15 sheet-uri. Pentru a citi si genera fișiere Excel (.xlsx) într-o aplicație de consolă C#, poți folosi librăria ClosedXML, care simplifică interacțiunea cu fișierele Excel fără a necesita instalarea Microsoft Excel pe calculator. 1. Instalează ClosedXML În Visual Studio, deschide Package Manager Console și rulează comanda: Install-Package ClosedXML Alternativ, poți adăuga pachetul din NuGet Package Manager căutând ClosedXML. 2. Exemple de cod După instalare, poți folosi codul de mai jos pentru a citi date dintr-un fișier .xlsx. using System; using ClosedXML.Excel; class Program { static void Main(string[] args) { // Specifică calea către fișierul Excel string filePath = @"C:\calea\catre\fisier.xlsx"; // Deschide fișierul Excel using (var workbook = new XLWorkbook(filePath)) { // Selectează foaia de lucru (sheet-ul) dorită var worksheet = workbook.Worksheet(1); // sau numele foii: workbook.Worksheet("Sheet1") // Iterează prin rândurile și coloanele foii de lucru foreach (var row in worksheet.RowsUsed()) { foreach (var cell in row.CellsUsed()) { Console.Write(cell.GetValue() + "\t"); } Console.WriteLine(); } } } } Deschiderea fișierului: new XLWorkbook(filePath) deschide fișierul .xlsx specificat. Selectarea Foii de Lucru: workbook.Worksheet(1) alege prima foaie de lucru din fișier. Poți folosi și numele foii, de exemplu: workbook.Worksheet("Sheet1"). Iterarea prin celule: Folosim RowsUsed() pentru a itera doar prin rândurile folosite, iar CellsUsed() pentru a obține doar celulele cu date. Observații ClosedXML gestionează automat închiderea fișierului și eliberarea resurselor după utilizare datorită using statement-ului. Referință pentru valori: cell.GetValue() extrage valoarea din celulă și o converteste la tipul specificat (aici string). Acest cod ar trebui să afișeze datele din fișierul Excel în consolă, fiecare celulă fiind separată de un tab pentru lizibilitate.